The present invention relates generally to systems and methods for processing video data. More specifically, the present invention relates to efficient systems and methods for performing motion compensation based decoding and recoding.
Video data is transmitted in a bitstream, or a continuous sequence of binary bits used to digitally represent compressed video, audio or data. The bitstream is transmitted over a transmission channel. One problem with existing transmission channels is their ability to transport video data. In multimedia streaming applications for example, the video data requires significant bandwidth from a communication channel. Since transmission of video data with existing communication channels is often excessive, compression is an approach that has been used to make digital video images more transportable. Digital video compression schemes allow digitized video frames to be represented digitally in much more efficient manner. Compression of digital video makes it practical to transmit the compressed signal using digital channels at a fraction of the bandwidth required to transmit the original signal before compression.
International standards have been created for video compression schemes. These include MPEG-1, MPEG-2, MPEG-4, H.261, H.262, H.263, H.263+, etc. These standardized compression schemes rely on several algorithm schemes such as motion compensation, transform coding (for example, DCT transforms or wavelet/sub-band transforms), quantization of the transform coefficients, and variable length coding (VLC). The motion compensation removes the temporally redundant information between video frame sequences. The transform coding enables orthogonal spatial frequency representation of spatial domain video data. Quantization of the transformed coefficients reduces the number of levels required to represent a given digitized video. The other factor contributing to compression is the use of variable length coding (VLC) so that most frequently used symbols are represented by the shortest code word.
The system that is used to compress digitized video sequence using the above-described schemes is called an encoder or encoding apparatus. Decoding of a bitstream refers to the process of converting compressed video data to a displayable output. Recoding of a compressed video bitstream refers to a process performed on a compressed video bitstream that results in a different bit usage than the originally compressed bitstream, and may include partial or full decoding and re-encoding.
Commonly, transmission of video data is intended for real-time playback. This implies that all of the information required to represent a digital picture must be delivered and displayed in a timely manner. Real time video typically includes more than a thousand of frames per minute. Thus, motion compensation applied during decoding or recoding must be performed quickly. However, motion compensation of compressed video images and data, during decoding or recoding, is generally the most computationally expensive process and represents the bottleneck to decoding and recoding compressed video data.
Motion compensation of an MPEG bitstream includes an iterative process where I, P and B frames are reconstructed using a framestore memory or frame buffers. Motion compensation is typically performed on the reference frame store whose content is the reconstructed image samples from the input compressed bitstream. In most cases, on-chip memory is insufficient to hold the video data for an entire compressed frame. For an HDTV signal, for example, the framestore memory must contain up to 12 MB of memory if an entire frame is used for motion compensation. Thus, the framestore memory or frame buffer is typically an off-chip memory source. Using off-chip memory may dramatically slow down decoding and recoding of compressed video, particularly when the motion compensation must be quickly performed.
Untimely decoding and recoding encountered as a result of off-chip memory delays may undesirably introduce processing delays during transmission and decoding. In a digital video broadcast where thousands of bitstreams are transmitted for example, undesirable processing delays may compromise broadcast transmission.
Therefore, there is a need for efficient methods and systems of performing motion compensation, while minimizing undesirable computational delays.